<!DOCTYPE html>
 <html>
 <head>
    <title>day 2</title>
 </head>
 <body>
 <h1>继承的相关练习</h1>
 </body>
 </html>
<?php 
header("Content-type:text/html;charset=utf-8");
    class Person {                      
        protected $name;            
        protected $sex; 
        protected $age;                     
        public function __construct($name="", $sex="",$age="") {
         $this->name=$name;
         $this->sex=$sex;
          $this->age=$age;
          }
        public function say(){ 
           echo "我的名字：".$this->name."，性别：".$this->sex."我的年龄".$this->age."<br>";
         }   
    }
   class Student extends Person {  //声明学生类，使用extends继承Person类
        private $school;            x`
         //构造方法重写（覆盖）
        public function __construct($name="",$school="", $sex="男 ",$age="20" ) {   
            parent::__construct($name,$sex,$age);   //调用父类构造方法，初始化父类
            $this->school = $school;                  //新添加一条为子类中新声明的成员属性赋初值
        }
        public function say( ) {                        //方法重写（覆盖）
            parent::say();                                    //调用父类中被本方法覆盖掉的方法
            echo "在".$this->school."学校上学<br>";    //在原有的功能基础上多加一点功能
        }   
    }
$student = new Student("张三","大连东软信息学院");  //创建学生对象，并多传一个学校名称参数    
$student->say();                                                 //调用学生类中覆盖父类的说话方法













 ?>